home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 4
/
Amiga Tools 4.iso
/
tools
/
mail-tools
/
thor
/
thor_2.22
/
thor.lha
/
rexx
/
GetHTTP.thor
< prev
next >
Wrap
Text File
|
1995-12-18
|
5KB
|
216 lines
/*
$VER: GetHTTP.Thor 2.0b2 by Remco van Hooff
*/
hotlist_amosaic = 'envarc:mosaic/.mosaic-hotlist-default'
amosaic = 1
hotlist_ibrowse = 'IBrowse:prefs/hotlist'
ibrowse = 1
hotlist_html = 'path_to_hotlist:hotlist.html'
html = 0
/* don't edit these */
cr = '0d'x
lf = '0a'x
/* filter chars, expand if you want */
filter.1 = cr
filter.2 = lf
filter.3 = ')'
filter.4 = ','
filter.5 = "'"
filter.6 = '"'
filter.7 = ']'
filter.8 = '>'
filter.9 = '}'
filter.count = 9 /* number of chars */
/* --- no need to edit anything below this line --- */
tempfile = 't:http.tmp'
space = ' '
drop name.
options failat 31
p = address() || ' ' || show('P',,)
thorport = pos('THOR.',p)
if thorport > 0 then thorport = word(substr(p,thorport),1)
else do
say 'THOR port not found!'
exit 10
end
if ~show('p', 'BBSREAD') then do
address command
"run >nil: `GetEnv THOR/THORPath`bin/LoadBBSRead"
"WaitForPort BBSREAD"
end
address(thorport)
options results
CURRENTMSG stem MSG
if(rc ~= 0) then do
REQUESTNOTIFY TEXT '"'THOR.LASTERROR'"' BT '"_Ok"'
exit
end
msgnum = MSG.MSGNR
bbs = MSG.BBSNAME
conf = MSG.CONFNAME
address bbsread READBRMESSAGE BBSNAME '"'bbs'"' CONFNAME '"'conf'"' MSGNR msgnum HEADSTEM headtags
if(rc ~= 0) then do
REQUESTNOTIFY TEXT '"'BBSREAD.LASTERROR'"' BT '"_Ok"'
exit
end
subj = HEADTAGS.SUBJECT
if pos('RE:',UPPER(subj)) ~=0 then subj = substr(subj,5)
SAVEMESSAGE CURRENT FILENAME tempfile NOHEADER NOANSI OVERWRITE
if(rc ~= 0) then do
REQUESTNOTIFY TEXT '"'THOR.LASTERROR'"' BT '"_Ok"'
exit
end
else do
call open(tmp, tempfile, 'r')
num = 0
do while ~eof(tmp)
msg = readln(tmp)
msg = translate(msg, 'hpt', 'HPT')
parse var msg . 'ttp://' httpadres .
if httpadres ~= '' then do
num = num + 1
lengte = length(httpadres)
call filter(httpadres, lengte)
found.num = httpadres
found.count = num
end
end
call close(tmp)
address command 'delete >nil: 'tempfile
if found.0 = 0 then 'requestnotify text "No URL found." bt "_OK"'
end
call listfound
if ok = 1 then do
listsave:
do i = 1 to save.count
if name.i = 'NAME.'i then name.i = space
show.i = name.i' - 'save.i
end
sep = save.count +1
but = save.count +2
show.sep = ''
show.but = 'SAVE'
show.count = save.count+2
REQUESTLIST INSTEM show TITLE '"Select to enter a name"' SIZEGADGET
if (rc = 30) then do
REQUESTNOTIFY TEXT '"'THOR.LASTERROR'"' BT '"_Ok"'
exit
end
if rc ~= 5 then do
selected = result
do n = 1 to save.count
if selected = show.n then do
if name.n = space then name.n = ''
REQUESTSTRING title '"Enter a name"' BT '"_OK"' BODY '"'save.n'"' MAXCHARS 20 INITIALSTRING '"'name.n'"'
name.n = LEFT(result,20,' ')
end
if selected = 'SAVE' then signal savehotlist
end
signal listsave
end
end
EXIT
filter:
adres = arg(1)
lngth = arg(2)
do i = 1 to filter.count
check = pos(filter.i, adres)
if check ~=0 then do
adres = delstr(adres, check)
end
end
punt = lastpos('.', adres)
if punt ~=0 then lngth = length(adres)
if (punt = lngth) then do
adres = delstr(adres, punt)
end
httpadres = 'http://'||adres
return
listfound:
if found.COUNT > 0 then do
REQUESTLIST instem found outstem save title '"Select URL(s) to save"' MULTISELECT SIZEGADGET
if (rc = 30) then do
REQUESTNOTIFY TEXT '"'THOR.LASTERROR'"' BT '"_Ok"'
exit
end
end
if rc ~= 5 then ok = 1
if found.COUNT = 0 then do
REQUESTNOTIFY '"No URLs found in this message"' '"_Ok"'
exit
end
return
savehotlist:
DO i = 1 TO save.count
IF name.i = '' THEN name.i = 'GetHTTP -' subj '('i')'
END
IF amosaic = 1 then call save_amosaic
IF ibrowse = 1 then call save_ibrowse
IF html = 1 then call save_html
exit
save_amosaic:
IF ~EXISTS(hotlist_amosaic) THEN DO
Requestnotify '"Amosaic hotlist not found!"' '"_OK"'
RETURN
END
ELSE DO
dat = date()
parse var dat dagnr maand jaar
dag = left(date('W', date(S), 'S'), 3)
datum = dag maand dagnr time()jaar
CALL OPEN(htlst,hotlist_amosaic,'a')
DO i = 1 TO save.count
CALL WRITELN(htlst,save.i||' '||datum)
CALL WRITELN(htlst,STRIP(name.i))
end
CALL CLOSE(htlst)
END
ADDRESS COMMAND 'copy' hotlist_amosaic 'env:mosaic/'
RETURN
save_ibrowse:
IF ~EXISTS(hotlist_ibrowse) THEN DO
Requestnotify '"IBrowse hotlist not found!"' '"_OK"'
RETURN
END
ELSE DO
CALL OPEN(htlst,hotlist_ibrowse,'a')
DO i = 1 TO save.count
CALL WRITELN(htlst,save.i)
CALL WRITELN(htlst,STRIP(name.i))
end
CALL CLOSE(htlst)
END
RETURN
save_html:
IF ~EXISTS(hotlist_html) THEN DO
Requestnotify '"HTML hotlist not found!"' '"_OK"'
RETURN
END
ELSE DO
CALL OPEN(htlst,hotlist_html,'a')
DO i = 1 TO save.count
CALL WRITELN(htlst,'<LI><A HREF="'save.i'">'STRIP(name.i)'</A><br>')
end
CALL CLOSE(htlst)
END
RETRUN